{
	"$schema" : "http://json-schema.org/draft-04/schema#",
	"id" : "http://json-schema.org/draft-04/schema#",
	"type" : "object",
	
	"properties" : {
		"type" : {
			"type" : [
				{
					"id" : "#simple-type",
					"type" : "string",
					"enum" : ["object", "array", "string", "number", "boolean", "null", "any"]
				}, 
				"array"
			],
			"items" : {
				"type" : [
					{"$ref" : "#simple-type"}, 
					{"$ref" : "#"}
				]
			},
			"uniqueItems" : true,
			"default" : "any"
		},
		
		"disallow" : {
			"type" : ["string", "array"],
			"items" : {
				"type" : ["string", {"$ref" : "#"}]
			},
			"uniqueItems" : true
		},
		
		"extends" : {
			"type" : [{"$ref" : "#"}, "array"],
			"items" : {"$ref" : "#"},
			"default" : {}
		},

		"enum" : {
			"type" : "array",
			"minItems" : 1,
			"uniqueItems" : true
		},
	
		"minimum" : {
			"type" : "number"
		},
		
		"maximum" : {
			"type" : "number"
		},
		
		"exclusiveMinimum" : {
			"type" : "boolean",
			"default" : false
		},
		
		"exclusiveMaximum" : {
			"type" : "boolean",
			"default" : false
		},
		
		"divisibleBy" : {
			"type" : "number",
			"minimum" : 0,
			"exclusiveMinimum" : true,
			"default" : 1
		},
		
		"minLength" : {
			"type" : "integer",
			"minimum" : 0,
			"default" : 0
		},
		
		"maxLength" : {
			"type" : "integer"
		},
		
		"pattern" : {
			"type" : "string"
		},
		
		"items" : {
			"type" : [{"$ref" : "#"}, "array"],
			"items" : {"$ref" : "#"},
			"default" : {}
		},
		
		"additionalItems" : {
			"type" : [{"$ref" : "#"}, "boolean"],
			"default" : {}
		},
		
		"minItems" : {
			"type" : "integer",
			"minimum" : 0,
			"default" : 0
		},
		
		"maxItems" : {
			"type" : "integer",
			"minimum" : 0
		},
		
		"uniqueItems" : {
			"type" : "boolean",
			"default" : false
		},
		
		"properties" : {
			"type" : "object",
			"additionalProperties" : {"$ref" : "#"},
			"default" : {}
		},
		
		"patternProperties" : {
			"type" : "object",
			"additionalProperties" : {"$ref" : "#"},
			"default" : {}
		},
		
		"additionalProperties" : {
			"type" : [{"$ref" : "#"}, "boolean"],
			"default" : {}
		},
		
		"minProperties" : {
			"type" : "integer",
			"minimum" : 0,
			"default" : 0
		},
		
		"maxProperties" : {
			"type" : "integer",
			"minimum" : 0
		},
		
		"required" : {
			"type" : "array",
			"items" : {
				"type" : "string"
			}
		},
		
		"dependencies" : {
			"type" : "object",
			"additionalProperties" : {
				"type" : ["string", "array", {"$ref" : "#"}],
				"items" : {
					"type" : "string"
				}
			},
			"default" : {}
		},
		
		"id" : {
			"type" : "string"
		},
		
		"$ref" : {
			"type" : "string"
		},
		
		"$schema" : {
			"type" : "string"
		},
		
		"title" : {
			"type" : "string"
		},
		
		"description" : {
			"type" : "string"
		},
		
		"default" : {
			"type" : "any"
		}
	},
	
	"dependencies" : {
		"exclusiveMinimum" : "minimum",
		"exclusiveMaximum" : "maximum"
	},
	
	"default" : {}
}